Amazon Data Firehose がサポートした日本時間(JST)を反映させたS3プリフィックス設定を試してみた
2024年2月16日、Amazon Data Firehose が 出力先S3のプリフィックスに含まれる日時情報として、 UTC以外の任意のタイムゾーンを指定可能となるアップデートがありました。
今回、Firehoseの S3のプリフィックス設定で、タイムゾーンを 「Asia/Tokyo」に変更し、 S3に出力されるファイルの日時が日本時刻(JST)となっている事を確認する機会がありましたので、紹介させていただきます。
Firehose設定
S3 バケットプレフィックスは、年月日と時刻を含む指定としました。
!{timestamp:yyyy/MM/dd/HH}/
S3 バケットと S3 エラー出力プレフィックスタイムゾーン、デフォルトのUTCから「Asia/Tokyo」に変更しました。
動作確認
S3オブジェクト一覧
日本時間 20時台に出力されたファイル、プリフィックス「2024/02/19/20/」のキーで保存されている事を確認できました。
S3ファイル
最終更新 「2024/02/19 08:07:11 PM JST」のファイルを対象にS3 Selectを利用してクエリを実行。ファイルの最初と最終エントリに含まれるタイムスタンプを確認しました。
- 先頭
"mail": { "timestamp": "2024-02-19T10:59:46.925Z",
- 最終
"mail": { "timestamp": "2024-02-19T11:03:53.271Z",
まとめ
OS、ミドルウェアなどのタイムゾーンを日本時間(JST)に変更しているワークロードで、 Firehose 経由でS3に保存されるログファイルのプリフィックスがUTCであるため、都度日本時刻への読み替えや、ログファイルの移動など実施されている場合、今回のアップデートをお試しください。
※特別な理由がない限り、タイムゾーンは他のAWSマネージドサービスに揃えデフォルトのUTCで利用する事をおすすめします。
なお、Firehoseが備えるバッファの影響により、ログ発生時刻とS3の保存時間にはタイムラグが発生する場合もあります。 過不足のない抽出を発生日時別に行う必要がある場合には、別途追加課金が発生しますが、 従来からサポートされている動的パーティショニングの利用をご検討ください。